package Daos;
/**
 * clase que se ocupa de producir las sentencias SQL necesarias para el acceso a la BD
 * @author GRUPODOS
 * @version 8/3/13
 */
public class ConsultasSQL 
{

	//Consultas de jugador
	public String existeJugador(){
		String query="SELECT idjugadores FROM proyecto1barreminas.jugadores WHERE idjugadores = ?";
		return query;
	}
	public String insertarJugador(){
		String query="INSERT INTO proyecto1barreminas.jugadores(idjugadores,idBarco,idTurno,puntos)VALUES(?,?,?,?)";
		return query;
	}
	public String buscarJugador(){
		String query="SELECT * FROM proyecto1barreminas.jugadores WHERE idjugadores = ?";
		return query;
	}
	public String eliminarJugador(){
		String query="DELETE FROM proyecto1barreminas.jugadores WHERE idjugadores = ?";
		return query;
	}
	public String buscarIdPartidaPorIdJugador(){
		String query="	SELECT partidas.idPartidas From proyecto1barreminas.partidas WHERE idJugador1=? OR idJugador2=?;" ;
		return query;
	}
	public String buscarIdTurnoPorIdJugador(){
		String query="SELECT idTurno FROM proyecto1barreminas.jugadores  WHERE idJugadores = ? " ;
		return query;
	}
	public String buscarIdBarcoPorIdJugador(){
		String query="SELECT jugadores.idBarco FROM proyecto1barreminas.jugadores WHERE idJugadores = ? ;" ;
		return query;
	}
	public String buscarJugadoresPorIdPartida() {
		String query="SELECT idJugador1, idJugador2 FROM Partidas WHERE idPartidas = ?";
		return query;
	};
	public String ingresarPrimerJugadorEnPartida() {
		String query = "UPDATE partidas SET idJugador1 = ? WHERE idPartidas = ?;";
		return query;
	}
	public String ingresarSegundoJugadorEnPartida() {
		String query = "UPDATE partidas SET idJugador2 = ? WHERE idPartidas = ?;";
		return query;
	}
	//Consultas de usuario
	
	public String existeUsuario(){
		String query="SELECT idUsuariosRegistrados FROM proyecto1barreminas.usuariosregistrados WHERE idUsuariosRegistrados=?";
		return query;
	}
	public String insertarUsuario(){
		String query="INSERT INTO proyecto1barreminas.usuariosregistrados(idUsuariosRegistrados,nickname,password,email)VALUES(?,?,?,?);";
		return query;
	}
	public String buscarUsuario(){
		String query="SELECT *FROM proyecto1barreminas.usuariosregistrados WHERE idUsuariosRegistrados=?";
		return query;
	}
	public String eliminarUsuario(){
		String query="DELETE FROM  proyecto1barreminas.usuariosregistrados WHERE idJugador = ?";
		return query;
	}
	
	public String buscarJugadorActivo(){
		String query="SELECT idUsuariosRegistrados FROM proyecto1barreminas.usuariosregistrados JOIN proyecto1barreminas.jugadores  on proyecto1barreminas.usuariosregistrados.idUsuariosRegistrados = proyecto1barreminas.jugadores.idJugador where proyecto1barreminas.jugadores.idJugador= ? ;";
		return query;
	}
	//no se bien donde es la partida que se esta jugando en el moento
	public String estaRegistradoEnPartida(){
		String query="SELECT idUsuariosRegistrados FROM proyecto1barreminas.usuariosregistrados JOIN proyecto1barreminas.jugadores  on proyecto1barreminas.usuariosregistrados.idUsuariosRegistrados = proyecto1barreminas.jugadores.idJugador where proyecto1barreminas.jugadores.idJugador= ? ;";
		return query;
	}
	public String estaRegistradoEnAlgunaPartida(){
		String query="SELECT * FROM UsuarioJugador WHERE idUsuario = ?;";
		return query;
	}
	public String buscarUsuarioPorNickTPassword(){
		String query="SELECT * FROM UsuariosRegistrados WHERE nickname = ? AND password = ?;";
		return query;
	}
	//consultasd de Imagenes
	
	public String insertarImagen(){
		String query="INSERT INTO proyecto1barreminas.imagenes(idImagen,descripcion,url)VALUES(?,?,?);";
		return query;
	}
	public String buscarImagenPorId(){
		String query="SELECT *FROM proyecto1barreminas.imagenes WHERE idImagen=?";
		return query;
	}
	
	public String listarTodosImagenes(){
		String query="SELECT *FROM proyecto1barreminas.imagenes";
		return query;
	}
	
	//Consultas de Mapas
	
	public String insertarMapa(){
		String query="INSERT INTO proyecto1barreminas.mapas(idMapa,columnas,filas,secuenciaNavegabilidad)VALUES(?,?,?,?)";
		return query;
	}
	public String buscarMapa(){
		String query="SELECT fila,columna,valor FROM proyecto1barreminas.mapas WHERE idMapa=?";
		return query;
	}
	
	public String CantidadFilasMapa(){
		String query="SELECT MAX(fila) + 1 FROM proyecto1barreminas.mapas WHERE idMapa=?";
		return query;
	}
	
	public String CantidadColumnasMapa(){
		String query="SELECT MAX(columna) + 1 FROM proyecto1barreminas.mapas WHERE idMapa=?";
		return query;
	}
	//Consultas de Objetos
	
	public String ingresarBarreminas(){
		String query="INSERT INTO proyecto1barreminas.barcobarreminas(idBarcoBarreminas,idObjeto,resistencia,danio,alcanceTiro,visibilidad,velocidad,angulo,esImpactado,municionesRestantes,radioSonar)VALUES(?,?,?,?,?,?,?,?,?,?,?)";
		return query;
	}
	public String ingresarMinador(){
		String query="INSERT INTO proyecto1barreminas.barcominador(idBarcoMinador,idobjeto,resistencia,danio,alcanceTiro,visibilidad,velocidad,angulo,esImpactado,municionesRestantes,minasRestantes)VALUES(?,?,?,?,?,?,?,?,?,?,?);";
		return query;
	}
	
	public String ingresarMina(){
		String query="INSERT INTO proyecto1barreminas.minas(idMina,idObjeto,tipo,radioExplosion,esExplotada)VALUES(?,?,?,?,?);";
		return query;
	}
	public String ingresarCarguero(){
		String query="INSERT INTO proyecto1barreminas.barcocarguero(idBarcoCarguero,idObjeto,resistencia,danio,visibilidad,velocidad,angulo,esImpactado,destinoX,destinoY)VALUES(?,?,?,?,?,?,?,?,?,?);";
		return query;
	}
	
	public String buscarBarreminas(){
		String query="SELECT * FROM proyecto1barreminas.barcobarreminas WHERE idobjeto=?;";
		return query;
	}
	public String buscarMinador(){
		String query="SELECT * FROM proyecto1barreminas.barcominador WHERE idobjeto=?;";
		return query;
	}
	
	public String buscarCarguero(){
		String query="SELECT * FROM proyecto1barreminas.barcocarguero WHERE idobjeto=?;";
		return query;
	}
	
	public String buscarCargueroPorIdPartida(){
		String query="SELECT b.* FROM proyecto1barreminas.objetos o, proyecto1barreminas.barcocarguero b WHERE o.idpartida= ? AND o.idObjeto=b.idObjeto;";
		return query;
	}
	
	public String buscarMina(){
		String query="SELECT * FROM proyecto1barreminas.minas WHERE idObjeto=?;";
		return query;
	}
	
	public String buscarTodosLosObjetosDePartida(){
		String query="SELECT *FROM proyecto1barreminas.objetos WHERE idObjeto=?;";
		return query;
	}
	//consultas actualizar objeto
	public String modificarBarreminas() {
		String query = "UPDATE proyecto1barreminas.barcobarreminas SET resistencia = ?,danio = ?,alcanceTiro = ?,visibilidad = ?,velocidad= ?,angulo = ?,esImpactado = ?,municionesRestantes = ?,radioSonar = ? WHERE idobjeto=?;";
		return query;
	}
	public String modificarMinador() {
		String query = "UPDATE proyecto1barreminas.barcominador SET resistencia = ?,danio = ?,alcanceTiro = ?,visibilidad = ?,velocidad= ?,angulo = ?,esImpactado = ?,municionesRestantes = ?,minasRestantes = ? WHERE idobjeto=?;";
		return query;
	}
	public String modificarCarguero() {
		String query = "UPDATE proyecto1barreminas.barcocarguero SET resistencia = ?,danio = ?,visibilidad = ?,velocidad= ?,angulo = ?,esImpactado = ?,destinoX = ?,destinoY = ? WHERE idobjeto=?;";
		return query;
	}
	public String modificarMina() {
		String query = "UPDATE proyecto1barreminas.minas SET tipo = ?,radioExplosion = ?,esExplotada = ? WHERE idobjeto=?;";
		return query;
	}
	public String modificarObjeto() {
		String query = "UPDATE proyecto1barreminas.objetos SET	posicionX = ?,	posicionY = ?,	tipo = ?,idImagen = ? WHERE idObjeto = ?;";
		return query;
	}
	
	
	
	//Consultas Partidas Activas 
	public String ingresarPartida(){
		String query="INSERT INTO proyecto1barreminas.partidas(idPartidas,idMapa,nombre,estado,movimientosPorTurno,fecha,idJugador1,idJugador2,numeroTurno,cargueroEnTurno)VALUES(?,?,?,?,?,?,?,?,?,?);";
		return query;
	}
	
	//Si atributo estado estuviera en BD
	public String listPartidaPorEstado(){
		String query="SELECT * from Partidas where estado=?";
		return query;
	}
	
	public String cambiarEstadoCargarJugador1(){
		String query = "UPDATE proyecto1barreminas.partidas SET cargoJugador1=? WHERE idPartidas=?";
		return query;
	}
	
	public String cambiarEstadoCargarJugador2(){
		String query = "UPDATE proyecto1barreminas.partidas SET cargoJugador2=? WHERE idPartidas=?";
		return query;
	}
	
	public String verificarJugador1Cargando(){
		String query = "SELECT * FROM proyecto1barreminas.partidas WHERE cargoJugador1=1 AND idPartidas=?";
		return query;
	}
	
	public String verificarJugador2Cargando(){
		String query = "SELECT * FROM proyecto1barreminas.partidas WHERE cargoJugador2=1 AND idPartidas=?";
		return query;
	}	
	
	//Listo partidas sin jugador 2
	public String listarPartidasSinJugador2()
	{
		String query="SELECT partidas.idPartidas"+
		"FROM proyecto1barreminas.partidas WHERE idJugador2 = null AND idPartidas = ?;";		
		return query;
	}
	
	//ya esta en jugadores
	public String buscarIdPartidaPorJugador(){
		String query="SELECT partidas.idPartidas From proyecto1barreminas.partidas WHERE idJugador1 =? OR idJugador2 = ?" ;

		return query;
	}
	public String buscarPartidaPorJugador(){
		String query="SELECT * From proyecto1barreminas.partidas WHERE idJugador1 =? OR idJugador2 = ?" ;
		return query;
	}
	public String buscarPartidaPorId(){
		String query="SELECT * FROM proyecto1barreminas.partidas WHERE idPartidas=?";
		return query;
	}
	
	//Consultas Turnos
	public String insertarTurno(){
		String query="INSERT INTO proyecto1barreminas.turno(idTurno,movRestantes,comienzo,activo)VALUES(?,?,?,?);";
		return query;
	}
	public String buscarTurnoPorId(){
		String query="SELECT * FROM proyecto1barreminas.turno WHERE idTurno=?;";
		return query;
	}
	public String modificarTurno(){
		String query="UPDATE proyecto1barreminas.turno SET movRestantes = ?,comienzo = ?,activo = ? WHERE idTurno=?;";		
		return query;
	}
	
	//Consultas UsurioJugador
	
	public String insertarUsuarioJugador(){
		String query="INSERT INTO proyecto1barreminas.usuariojugador (idUsuario, idJugador, puntos)VALUES(?, ?, ?);";
		return query;
	};
	public String listarUsuarioJugador(){
		String query="SELECT * FROM proyecto1barreminas.usuariojugador;";
		return query;
	}
	
	//para modificar los puntos de los jugadores
	public String modificarUsuarioJugador(){
		String query="UPDATE proyecto1barreminas.usuariojugador SET puntos = ?WHERE idUsuario=? or idJugador=?;";	
		return query;	}
	
	public String insertarObjeto() {
		
		String query="INSERT INTO proyecto1barreminas.objetos(idObjeto,posicionX,posicionY,tipo,idImagen,idpartida)VALUES(?,?,?,?,?,?);";
		return query;
	}
	public String buscarObjeto() {
		String query="SELECT * FROM proyecto1barreminas.objetos where idObjeto=?;";
		return query;
	}
	public String buscarObjetoPorPosicion(){
		String query="SELECT * FROM proyecto1barreminas.objetos where posicionX=? and posicionY=? and idpartida=?;";
		return query;
	}
	public String buscarObjetosPorIdPartida() {
		String query="SELECT * FROM proyecto1barreminas.objetos where idPartida=?;";
		return query;
		
	}
	public String modificarPartida() {
		String query = "UPDATE Partidas SET nombre = ?, estado = ?, movimientosPorTurno = ?, fecha = ?, idJugador1 = ?, idJugador2 = ?" +
				" WHERE idPartidas = ?";
		return query;
	}
	public String listarAccionesPermitidas() {
		String query = "SELECT * FROM acciones where idAccion IN(Select idAccionesbarco FROM accionesBarco WHERE tipoBarco = ?);";
		return query;
	}
	public String modificarJugador() {
		// TODO Auto-generated method stub
		String sql = "UPDATE Jugadores SET Puntos = ? WHERE idJugadores = ?;";		
		return sql;
	}
	
	public String insertarParametro() {
		String query = "INSERT INTO proyecto1barreminas.parametros(idparametro,descripcion,valor)VALUES(?,?,?);";
		return query;
	}
	
	public String buscarParametroPorId() {
		String query = "SELECT * FROM parametros WHERE idparametro = ?;";
		return query;
	}
	public String listarParametros() {
		String query = "SELECT * FROM proyecto1barreminas.parametros;";
		return query;
	}
	public String costoAcciones() {
		String query = "SELECT * FROM proyecto1barreminas.acciones;";
		return query;
	}
	public String modificarParametros() {
		String query = "UPDATE proyecto1barreminas.parametros SET descripcion = ?, valor = ? WHERE idparametro=?;";
		return query;
	}
	public String buscarParametroPorDescripcion() {
		String query = "SELECT * FROM parametros WHERE descripcion = ?;";
		return query;
	}
	
	public String actualizarEstadoPartida() {
		String query = "UPDATE proyecto1barreminas.partidas SET estado = ? WHERE idPartidas=?;";
		return query;
	}
	
	public String actualizarTurnoPartida(){
		String query = "UPDATE proyecto1barreminas.partidas SET numeroTurno = ? WHERE idPartidas=?; ";
		return query;
	}
	
	public String actualizarComienzoTurno() {
		String query = "UPDATE proyecto1barreminas.turno SET comienzo = ?  WHERE idTurno=?;";
		return query;
	}
	
	public String actualizarMovimientosRestantesTurno() {
		String query = "UPDATE proyecto1barreminas.turno SET movRestantes = ?  WHERE idTurno=?;";
		return query;
	}
	
	public String actualizarActivoTurno() {
		String query = "UPDATE proyecto1barreminas.turno SET activo = ?  WHERE idTurno=?;";
		return query;
	} 
    public String eliminarMinaSubAcuatica() {
	
	String query = "DELETE FROM proyecto1barreminas.minas WHERE idObjeto=? ;";
    	return query;
    }
    public String eliminarMinaSuperficial() {
	String query = "DELETE FROM proyecto1barreminas.minas WHERE idObjeto=? ;";
    	return query;
    }
    public String eliminarObjeto() {
	String query = "DELETE FROM proyecto1barreminas.objetos WHERE idObjeto=?;";
    	return query;
    }	
	public static String buscarBarcoEnPartida() {
		return  new String("SELECT * FROM Objetos WHERE idPartida = ? AND tipo = ?;");
	}
	public static String buscarJugadorPorBarco() {
		return new String("SELECT idJugadores FROM Jugadores WHERE idBarco = ?;");
	}
	
	public String buscarCoordenadaEnMapa() {
		return new String("SELECT valor FROM Mapas WHERE idMapa = ? and fila=? and columna=?;");
	}
	
	/*AccionesPorTurno*/
	public static String borrarAccionesActualizacion(){
		String query = "DELETE FROM acciones_en_turno WHERE mostro_Jugador_1 = 1 AND mostro_Jugador_2 = 1 AND idPartida = ?;";
		return query;
	}
	public static String insertarAccionActualizacion(){
		String query = "INSERT INTO acciones_en_turno VALUES(0,?,?,?,?,?,?,?,?);";
		return query;
	}
	public static String obtenerAccionesJugador1(){
		String query = "SELECT * FROM acciones_en_turno WHERE mostro_Jugador_1 = 0 AND idPartida = ? ORDER BY idAccionActualizar;";
		return query;
	}  
	public static String obtenerAccionesJugador2() {		
		String query = "SELECT * FROM acciones_en_turno WHERE mostro_Jugador_2 = 0 AND idPartida = ? ORDER BY idAccionActualizar;";		
		return query;
	}
	public static String marcarJugador1Actualizado(){
		String query = "UPDATE acciones_en_turno SET mostro_Jugador_1 = 1 WHERE idAccionActualizar = ?;";		
		return query;
	}
	public static String marcarJugador2Actualizado(){
		String query = "UPDATE acciones_en_turno SET mostro_Jugador_2 = 1 WHERE idAccionActualizar = ?;";		
		return query;
	}
	
	
}

